package com.molichuxing.services.business.dto.response;

import com.molichuxing.services.infrastructure.dto.response.LawsuitDto;
import com.molichuxing.services.property.OrderExclusivelStatusEnum;
import com.molichuxing.services.property.OrderExclusivelTypeEnum;
import com.molichuxing.services.property.OrderPaymentMethodEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 专属里程订单dto
 *
 * @author zoumingyu
 * @date 2019年8月26日
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class OrderExclusivelBizDto extends OrderMemberBizDto {
    private static final long serialVersionUID = 4799328120400816337L;

    /**
     * 征信类型（1：茉莉征信，2：安鹏征信）
     */
    private OrderExclusivelTypeEnum exclusivelType;

    /**
     * 订单状态（） order_status
     */
    private OrderExclusivelStatusEnum orderStatus;

    /**
     * 商品租车费(商品信息) rental
     */
    private BigDecimal rental;

    /**
     * 服务费 service_fee
     */
    private BigDecimal serviceFee;

    /**
     * 付款方式（1：一次性付清，2：分期） payment_method
     */
    private OrderPaymentMethodEnum paymentMethod;

    /**
     * 还款周期（1：1个月，n：n个月） repayment_period
     */
    private Integer repaymentPeriod;

    /**
     * 首付期数（1：1期，2：2期，n：n期） first_terms
     */
    private Integer firstTerms;

    /**
     * 结算日（1：1号...28：28号） settle_day
     */
    private Integer settleDay;

    /**
     * 过户时限（0：无，n：n个月） transfer_time
     */
    private Integer transferTime;

    /**
     * 过户费 transfer_fee
     */
    private BigDecimal transferFee;

    /**
     * 用车时长（1：1个月，n：n个月） transport_time
     */
    private Integer transportTime;

    /**
     * 是否回购（0：不回购，1：回购） is_buyback
     */
    private Boolean isBuyback;

    /**
     * 订单预警里程 warning_mileage
     */
    private Integer warningMileage;

    /**
     * 订单起始车辆里程 start_mileage
     */
    private Integer startMileage;

    /**
     * 回购金额 buyback_amount
     */
    private BigDecimal buybackAmount;

    /**
     * 保底回购价 minimun_guarantee_amount
     */
    private BigDecimal minimunGuaranteeAmount;

    /**
     * 限制里程 limit_mileage
     */
    private Integer limitMileage;

    /**
     * 退租时间
     */
    private LocalDateTime renegeTime;

    // 退租信息
    private OrderRenegeBizDto renege;

    // 诉讼信息
    private LawsuitDto lawsuit;
}
